<?php

/*
  +-----------------------------------------------------------------------------------------+
  | Projeto MonitoraSUS                                                                     |
  +-----------------------------------------------------------------------------------------+
  | Copyright (c) 2005-2008 Secretaria Municipal de Saúde de Belo Horizonte / Prodabel      |
  |                                                                                         |
  | Analista Responsável: Hugo Nathaniel Rodrigues <hugonr@gmail.com>, <hugo@pbh.gov.br> |
  |                       Consultor - GSFS - Prodabel / SMSA                                |
  | Departamento Responsável - SMSA: GPLD - Paulinho <pauloces@pbh.gov.br>                  |
  | Departamento Responsável - Prodabel: GSFS - Ricardo Monteiro <monteiro@pbh.gov.br>      |
  | Analista de Informaçao: Marcone <marcone.costa@pbh.gov.br>                              |
  +-----------------------------------------------------------------------------------------+
 */

/**
 * classe AcaoClass
 * Classe para Trabalhar com ações do plano municipal
 *
 * @author Hugo Rodrigues <hugonr@gmail.com>, <hugo@pbh.com.br>
 * @version $Id: class.Acao.php,v 1.0 07/08/2008 16:05:00 Hugo $
 *
 * num_tipo_prazo
 * 1 = prazo inicial
 * 2 = prazo final
 * 3 = acao concluida
 * 
 * @package MonitoraSUS
 */
//Alterado dia: 26/07/2011 18:41; Por: Mauricio Marques
//Alterado dia: 27/07/2011 08:22; Por: Mauricio Marques

class AcaoClassD {

    /**
     * contem o código da acao
     * @var int
     * @access monitorasus
     */
    var $numacao;
    var $banco;

    /**
     * Construtor
     * @access monitorasus
     */
    function AcaoClassD() {
        $this->numacao = "";
        $_SESSION["banco"] = $_SESSION["banco"];
    }

    /**
     * Excluir Ação
     * @param int $num_eixo
     * @param int $num_objetivo
     * @param int $num_diretriz
     * @param int $num_objetivoespecifico
     * @param int $num_meta
     * @param int $num_operacao
     * @param int $num_acao
     * @param string $where
     * @param array $nivelacesso
     * @return string $msg
     * @access	monitorasus
     */
    function excluiacao($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $where, $nivelacesso, $conexao) {
        if ($nivelacesso[7][3] == "S") {
        	
        	$sql = "select * from " . $_SESSION["banco"] . ".acoes_distrito where num_acao = $num_acao";
        	$resAcDist = pg_query($sql);
        	$podeExcluir = true;
        	if ( pg_num_rows($resAcDist) > 0 ){
        		while ( $rs = pg_fetch_array($resAcDist) ){
        			if ( $rs["aceitacao"] == 'A' ){
        				$podeExcluir = false;
        			}
        		}
        	}
        	
        	if ( $podeExcluir ){
            	$sql = "select * from " . $_SESSION["banco"] . ".acoes where num_acao=$num_acao";
            	$resultado = pg_query($sql);
	            if (($_SESSION["fcod_unsa"] == pg_fetch_result($resultado, 0, "cod_unsa_inclusao")) || ($_SESSION["fnum_nivel_acesso"] == 1)) {
	                $sql = "update " . $_SESSION["banco"] . ".acoes set situacao='I' where $where and num_acao=$num_acao";
	                if (pg_query($sql)) {
	                    $sql = "update " . $_SESSION["banco"] . ".acao_prazos set situacao='I' where $where and num_acao=$num_acao";
	                    if (pg_query($sql)){
	                    	$sql = "delete from " . $_SESSION["banco"] . ".acoes_distrito where num_acao=$num_acao";
	                    	pg_query($sql);
	                    	$msg = "Exclusão Realizada com sucesso!";
	                    } else {
	                    	$msg = "Erro ao realizar a exclusão!";
	                    }
	                } else {
	                    $msg = "Erro ao realizar a exclusão!";
	                }
	            } else {
	                $msg = "Você não tem permissão para excluir este registro, somente a Unidade que gerou o registro pode excluir o mesmo!";
	            }
        	} else {
        		$msg = "Você não pode excluir uma Atividade em que o Distrito está trabalhando!";
        	}
        } else {
            $msg = "Você não tem permissão para esta ação!";
        }
        return $msg;
    }
    
    /**
     * Inserir acao
     * @param int $num_eixo
     * @param int $num_objetivo
     * @param int $num_diretriz
     * @param int $num_objetivoespecifico
     * @param int $num_meta
     * @param int $num_operacao
     * @param string $des_acao
     * @param int $peso
     * @param string $dt_prev_inic
     * @param string $dt_prev_fina
     * @param string $responsavel
     * @param string $intersecao
     * @param int $num_orgao_intersecao
     * @param string $where
     * @return string $msg
     * @access	monitorasus
     */
    function inseriracao($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $where, $conexao) {
    	
    	/*
    	echo "<pre>";
    	
    	echo "SESSION - ";
    	print_r($_SESSION);
    	echo "<br/>";
    	
    	echo "POST - ";
    	print_r($_POST);
    	echo "</pre>";
    	exit;
    	/*
    	echo "num_eixo: ".$num_eixo."<br/>";
    	echo "num_objetivo: ".$num_objetivo."<br/>";
    	echo "num_diretriz: ".$num_diretriz."<br/>";
    	echo "num_objetivoespecifico: ".$num_objetivoespecifico."<br/>";
    	echo "num_meta: ".$num_meta."<br/>";
    	echo "num_operacao: ".$num_operacao."<br/>";
    	*/
    	
        $des_acao = trim($_POST["Des_Acao"]); 
        $motivonaocumprimento = trim($_POST["MotivoNaoCumprimento"]);
        $peso = trim($_POST["Peso"]);
        $dt_prev_inic = $_POST["Dt_Prev_Inic"];
        $dt_prev_fina = $_POST["Dt_Prev_Fina"];
        $responsavel = trim($_POST["Responsavel"]);
        $num_orgao_intersecao = $_POST["Num_Orgao_Intersecao"];
        $enviarAgora = $_POST["enviaragora"];
        
        if ($_SESSION["fcod_unsa"] != "") {
        	$codigoUnidadeSaude = $_SESSION["fcod_unsa"];
        } else {
        	$codigoUnidadeSaude = "1";
        }
        
        /*
        echo "<pre>";
        print_r($_POST);
        echo "</pre>";
        */
        
        // Inclusão de novo registro na tabela de descritivos
        $sql = "insert into " . $_SESSION["banco"] . ".descritivos (
        			des_descritivo, 
        			num_func_inclusao,
        			cod_unsa_inclusao 
        		) values ( 
        			'". decodificar($des_acao)."',
        			" . $_SESSION["fnum_func"] . ", 
        			$codigoUnidadeSaude)";
        
        
		//echo $sql . "<br/>";
		//exit;
        
        // Se foi inserido com sucesso ele entra e continua o processo...
        if ( pg_query($sql) ) {
        	
        	
        	// com este select eu recupero o codigo do descritivo que acabei de inserir no bloco a cima.
            $sql = "select 
            			num_descritivo 
            		from 
            			" . $_SESSION["banco"] . ".descritivos 
            		order by 
            			num_descritivo DESC limit 1";
            $resultado = pg_query($sql);
            
            // número do descritivo
            $num_descritivo = pg_fetch_result($resultado, 0, "num_descritivo");
            
            //echo $sql . "<br/>";
            //echo "Número do descritivo: " .$num_descritivo . "<br/>";
            //exit;
            
            
            // Se o código da unidade de saúde da seção for igual a 10
            if ( $codigoUnidadeSaude == 10 ){
            	
            		// Insere um novo registro na tabela de ações
		            $sql = "insert into " . $_SESSION["banco"] . ".acoes (
		            			num_operacao, 
		            			num_descritivo, 
		            			motivonaocumprimento, 
		            			peso, 
		            			dt_prev_inic, 
		            			responsavel, 
		            			id_usuario_inclusao, 
		            			data_inclusao, 
		            			situacao, 
		            			cod_unsa, 
		            			cod_unsa_inclusao,
		            			num_orgao_intersecao 
		            		) values (
		            			$num_operacao,
		            			$num_descritivo, 
		            			'" . decodificar($motivonaocumprimento) . "',
		            			'$peso',
		            			'" . dataparabanco($dt_prev_inic) . "',
		            			'" . decodificar($responsavel) . "',
		            			" . $_SESSION["fnum_func"] . ",
		            			now(), 
		            			'A', 
		            			$codigoUnidadeSaude,
		            			$codigoUnidadeSaude,
		            			";
		            
		            if ($num_orgao_intersecao != "") {
		                $sql .= "'$num_orgao_intersecao')";
		            } else {
		                $sql .= "NULL)";
		            }
		            
		            //echo "Nível Central <br/>";
		            //echo $sql . "<br/><br/>";
		            //exit;
		            
		            $resInclusao = "Atividade";
	            
            } else { // O Código da unidade de saúde que está na seção não é 10, logo
            		 // ele é algum distrito
            	
            		// Consulta o registro na tabela de ações para recuperar o código da ação
            		$sql = "select 
            					num_acao 
            				from 
            					" . $_SESSION["banco"] . ".acoes 
            				where 
            					num_descritivo = $num_descritivo";
            		
            		$resultado = pg_query($sql);
            		$num_acao = pg_fetch_result($resultado, 0, "num_acao");
            		
            		
            		$sql = "insert into " . $_SESSION["banco"] . ".acoes_distrito (
			            		num_eixo,
			            		num_objetivo,
			            		num_diretriz,
			            		num_objetivoespecifico,
			            		num_meta,
			            		num_operacao,
			            		num_acao,
			            		num_descritivo,
			            		data_inclusao,
			            		aceitacao,
			            		status,
			            		cod_unsa,
			            		cod_unsa_inclusao
            				) values (
            					$num_eixo,
            					$num_objetivo,
            					$num_diretriz,
            					$num_objetivoespecifico,
            					$num_meta,
            					$num_operacao,
            					$num_acao,
            					$num_descritivo,
            					now(),
            					'E',
            					'$enviarAgora',
            					$codigoUnidadeSaude,
            					$codigoUnidadeSaude
            				)";
            		
            		//echo "Distrito Sanitário <br/>";
            		//echo $sql . "<br/><br/>";
            		//exit;
            		
            		$resInclusao = "Ação Distrital";
            		
            }
            
            //echo $sql . "<br/><br/>";
            //exit;
            
            if ( pg_query($sql) ) {
            	
                $msg = "Inclusão da ". $resInclusao ." realizada com sucesso!";
                
                //echo $msg . "<br/>";
                
                if ( $codigoUnidadeSaude == 10 ){
                	$sql = "select 
                				num_acao 
                			from 
                				" . $_SESSION["banco"] . ".acoes 
                			where 
                				num_descritivo = $num_descritivo";
                	
	                $resultado = pg_query($sql);
	                
	                //echo $sql . "<br/><br/>";
	                //exit;
	                
	                $num_acao = pg_fetch_result($resultado, 0, "num_acao");
	                $this->numacao = $num_acao;
	                
	                $table = "acao_prazos";
	                $numero_acao = "num_acao";
                }else{
                	
                	$sql = "select 
                				num_acao_distrito 
                			from 
                				" . $_SESSION["banco"] . ".acoes_distrito 
                			where 
                				num_descritivo = $num_descritivo";

                	$resultado = pg_query($sql);
                	 
                	//echo $sql . "<br/><br/>";
                	//exit;
                	
                	$num_acao = pg_fetch_result($resultado, 0, "num_acao_distrito");
                	
                	$table = "acoes_distritos_prazos";
                	$numero_acao = "num_acao_distrito";
                }
                
                //exit;
                
                if ($dt_prev_fina != "") {
                    $sql = "insert into " . $_SESSION["banco"] . ".$table (
                    			$numero_acao, 
                    			num_tipo_prazo, 
                    			data_prazo, 
                    			id_usuario_inclusao, 
                    			data_inclusao, 
                    			situacao) values ";
                    $sql .= "($num_acao, 2, '" . dataparabanco($dt_prev_fina) . "', " . $_SESSION["fnum_func"] . ", now(), 'A')";
                    
                    //echo "Data Final <br/>";
                    //echo $sql . "<br/><br/>";
                    pg_query($sql);
                }
                
                if ($dt_prev_inic != "") {
                    $sql = "insert into " . $_SESSION["banco"] . ".$table (
                    			$numero_acao, 
                    			num_tipo_prazo, 
                    			data_prazo, 
                    			id_usuario_inclusao, 
                    			data_inclusao, 
                    			situacao) values ";
                    $sql .= "($num_acao, 1, '" . dataparabanco($dt_prev_inic) . "', " . $_SESSION["fnum_func"] . ", now(), 'A')";
                    
                    //echo "Data Inicial <br/>";
                    //echo $sql . "<br/><br/>";
                    pg_query($sql);
                }
				
                //exit;
                
                // $num_tipo_unsa = 32;
                // fixar somente se não estiver trabalhando com múltiplos níveis.
                if ( $codigoUnidadeSaude == 10 ) {
                    $num_tipo_unsa = 32;
                } else {
                    $sql = "select 
                    			num_tipo_unsa 
                    		from 
                    			monitorasus.unidade_saude 
                    		where 
                    			cod_unsa = $codigoUnidadeSaude";	
                    
                    $resultado = pg_query($sql);
                    $num_tipo_unsa = pg_fetch_result($resultado, 0, "num_tipo_unsa");
                }
                
                if ( $codigoUnidadeSaude == 10 ){
                	
	                if ( (int) $num_tipo_unsa != 14 ) {
	                	
	                    if ( $codigoUnidadeSaude == 10 ) {
	                        $num_tipo_unsa = 32;
	                    } else {
	                        if ( $num_tipo_unsa == 32 ) {
	                            $num_tipo_unsa = 14;
	                        }
	                    }
	                    
	                    $sql = "select 
	                    			cod_unsa, 
	                    			nom_unsa 
								from 
									monitorasus.unidade_saude
								where 
									num_tipo_unsa = $num_tipo_unsa 
								and 
									cod_unsa <> 10
								and
									cod_unsa >= 1000
								and
									cod_unsa <= 6000
								and 
	                    			length(ltrim(rtrim(to_char(cod_unsa,'9999999999')))) = 4 ";
	                    
	                    if ( $num_tipo_unsa == 14 ) {
	                        $sql .= " and cod_catg = 2 
									  and nom_unsa <> 'SICRA' 
									  and substring(ltrim(rtrim(to_char(cod_unsa,'9999'))) from 1 for 1)='" . substr($codigoUnidadeSaude, 0, 1) . "' ";
	                    }
	                    
	                    $sql .= " order by nom_unsa ";
	                    
	                    $resultado = pg_query($sql);
	                    
	                    while ($rs = pg_fetch_array($resultado)) {
	                    	
	                        if ($rs["cod_unsa"] != "") {
	                            // montando variável do checkbox da tela de inclusão
	                            $variavel = "c" . $rs["cod_unsa"];
	                            
	                            if ($_POST[$variavel] != "") {
	                            	
	                                // CÓDIGO PARA ENVIAR A ATIVIDADE PARA O DISTRITO
                              		// INSERÇÃO NA TABELA ACOES_DISTRITO - Gladstone Barbosa
	                                $sql = "insert into " . $_SESSION["banco"] . ".acoes_distrito (
	                                			num_eixo, 
	                                			num_objetivo, 
	                                			num_diretriz, 
	                                			num_objetivoespecifico, 
	                                			num_meta, 
	                                			num_operacao, 
	                                			num_acao, 
	                                			cod_unsa, 
	                                			cod_unsa_inclusao,
	                                			aceitacao,
	                                			num_descritivo,
	                                			data_inclusao,
	                                			status
	                                		) values (
	                            				$num_eixo,
	                            				$num_objetivo,
				                                $num_diretriz,
				                                $num_objetivoespecifico,
				                                $num_meta,
				                                $num_operacao,
				                                $num_acao,
				                                " . $rs['cod_unsa'] . ",
				                                $codigoUnidadeSaude,
				                                'E',
				                                $num_descritivo,
				                                now(),
				                               	'$enviarAgora'
	                            			)";
	                            	
	                            	//echo $sql . "<br/><br/>";
	                            	//exit;

	                            	pg_query($sql);
	                                
	                            }
	                        }
	                    }//fim do while
	                }// fim do if $unsa
	            }// fim do if $codigoUnidadeSaude
            } else {
                $msg = "Erro ao incluir a Atividade";
                $this->numacao = "";
            }
        } else {
            $msg = "Erro ao incluir a Atividade no Módulo Descritivo.";
            $this->numacao = "";
        }
        return $msg;
    }

    function inseriratividadeacao_dist($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $where, $conexao) {
        $des_acao = $_POST["Des_Acao"];
        $motivonaocumprimento = $_POST["MotivoNaoCumprimento"];
        

        $sql = "select a.num_acao num_atividade
         from exercicio2012.acoes a, 
              exercicio2012.descritivos d,
              exercicio2012.acoes_distrito c 
        where situacao = 'A' 
          and a.num_descritivo = d.num_descritivo 
          and a.num_operacao   = c.num_acao 
          and a.num_acao       = c.num_atividade 
          and a.num_operacao   = " .$num_operacao;
        
        if ($_SESSION["fcod_unsa"] != 10){
          $sql .= " and c.cod_unsa       =  " . $_SESSION["fcod_unsa"] . "order by a.dt_prev_inic"; 
        }

        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            //echo $sql;
            $num_atividade = pg_fetch_result($resultado, 0, "num_atividade");

            $peso = $_POST["Peso"];
            $dt_prev_inic = $_POST["Dt_Prev_Inic"];
            $dt_prev_fina = $_POST["Dt_Prev_Fina"];
            $responsavel  = $_POST["Responsavel"];
            $num_orgao_intersecao = $_POST["Num_Orgao_Intersecao"];

            $sql = "insert into " . $_SESSION["banco"] . ".atividadesacao_dist (cod_atividade, des_atividadesacao_dist, peso, dt_prev_inic, dt_prev_fina, responsavel, num_orgao_intersecao, motivonaocumprimento) values (";
            $sql .= $num_atividade . ",";
            $sql .= "'" . decodificar($des_acao) . "', ";
            $sql .= $peso . ", ";
            $sql .= "'" . $dt_prev_inic . "'" . ", ";
            $sql .= "'" . $dt_prev_fina . "'" . ", ";
            $sql .= "'" . decodificar($responsavel) . "', ";

            if ($num_orgao_intersecao != "") {
               $sql .= "'$num_orgao_intersecao', ";
            } else {
               $sql .= "NULL, ";
            }

            $sql .= "'";
            $sql .= $motivonaocumprimento . "'";
            $sql .= ")";

            $resultado = pg_query($sql);

            if (pg_query($sql)) {
               $msg = "Atividade Distrital inserida com sucesso...";
               $this->numacao = "";
            } else {
                $msg = "Erro ao incluir a Atividade Distrital no Módulo Descritivo.";
                $this->numacao = "";
            }
            return $msg;
        } else {
            die ('ATIVIDE DISTRITAL SÓ PODE SER INSERIDA APÓS SER ENVIADA PARA O DISTRITO');
        }     
    }
/**
     * Alterar Ação
     * @param int $num_eixo
     * @param int $num_objetivo
     * @param int $num_diretriz
     * @param int $num_objetivoespecifico
     * @param int $num_meta
     * @param int $num_operacao
     * @param int $num_acao
     * @param string $des_acao
     * @param int $peso
     * @param string $dt_prev_inic
     * @param string $responsavel
     * @param string $intersecao
     * @param int $num_orgao_intersecao
     * @param string $where
     * @return string $msg
     * @access	monitorasus 
     */
    function alteraracao($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $where, $conexao) {
    	
    	//echo "<br/> Método alterar acao <br/>";
    	/*
    	echo "<pre>";
    	print_r($_POST);
    	echo "</pre>";
    	*/
    	//exit;
    		
    	
    	$des_acao = $_POST["Des_Acao"];
        $peso = $_POST["Peso"];
        $dt_prev_inic = $_POST["Dt_Prev_Inic"];
        $responsavel = $_POST["Responsavel"];
        $num_orgao_intersecao = $_POST["des_orgao"];
        $motivonaocumprimento = $_POST["MotivoNaoCumprimento"];
        $enviarAgora = $_POST["enviaragora"];
        $codigoUnidadeSaude = $_SESSION["fcod_unsa"];
        
        $podeAlterar = true;
        
        // Consulta o Número do descritivo e o código da unidade de saúde que inseriu o registro
        // na tabela de "ações" = Atividade onde o número da ação for igual ao código passado por parâmetro
        $sqlAcoes = "select
			        	*
			         from
			        	" . $_SESSION["banco"] . ".acoes
			         where
			        	num_acao = $num_acao";
        
        $sqlVerificaAlteracao = "select 
        							* 
        						 from 
        							". $_SESSION["banco"] .".acoes_distrito
        						 where 
        						 	num_acao = $num_acao";
        
        $resultVerificaAlteracao = pg_query($sqlVerificaAlteracao);
        
        //echo "<br/> Seleciona as ações distritais <br/>";
        //echo $sqlVerificaAlteracao . "<br/><br/>";
        //exit;
        
        if ( pg_num_rows($resultVerificaAlteracao) > 0 ){
        	//echo "tem registro <br/>";
        	
        	while ( $rs = pg_fetch_array($resultVerificaAlteracao) ){
        		if ( $rs["aceitacao"] == "A" ){
        			$podeAlterar = false;
        		}
        	}
        } else {
        	//echo "não tem registro <br/>";
        	
        	$sqlResult = pg_query($sqlAcoes);
        	$num_descritivo = pg_fetch_result($sqlResult, 0, "num_descritivo"); 

        	$sql = "select
			        	cod_unsa,
			        	nom_unsa
		        	from
		        		monitorasus.unidade_saude
		        	where
		        		num_tipo_unsa = 32
		        	and
		        		cod_unsa <> 10
		        	and
		        		cod_unsa >= 1000
		        	and
		        		cod_unsa <= 6000
		        	and
		        		length(ltrim(rtrim(to_char(cod_unsa,'9999999999')))) = 4 
        			order by 
        				nom_unsa";
	        	 
        	$resultado = pg_query($sql);
        	
        	
			while ($rs = pg_fetch_array($resultado)) {
	                    	
	        	if ($rs["cod_unsa"] != "") {
	            	// montando variável do checkbox da tela de alteração
	                $variavel = "c" . $rs["cod_unsa"];
	                            
                	if ($_POST[$variavel] != "") {
                		
                		/*
                		
                		$sql = "select
                					*
                				from
                					" . $_SESSION["banco"] . ".operacoes
                				where
                					num_acao_central = $num_acao
                				and
                					cod_unsa = " . $rs["cod_unsa"];
                		
                		$resSqlOperacao = pg_query($sql);
                		
                		if ( pg_num_rows($resSqlOperacao) > 0 ){
                			
                			$codigoOperacao = pg_fetch_result($resSqlOperacao, 0, "num_operacao");
                			//echo "Codigo da operacao: $codigoOperacao <br/>" ;
                			
                			
                			$sqlDeleteOperacao = "delete from ". $_SESSION["banco"] .".operacoes
                								  where num_operacao = $codigoOperacao";
                			
                			//echo $sqlDeleteOperacao .  "<br/>";
                			//exit;
                			
                			pg_query($sqlDeleteOperacao);
                		}
                		
                		*/
                		
	                	// CÓDIGO PARA ENVIAR A ATIVIDADE PARA O DISTRITO
                        // INSERÇÃO NA TABELA ACOES_DISTRITO - Gladstone Barbosa
	                    $sql = "insert into " . $_SESSION["banco"] . ".acoes_distrito (
                        			num_eixo, 
                                	num_objetivo, 
                                	num_diretriz, 
                                	num_objetivoespecifico, 
									num_meta, 
                                	num_operacao, 
                                	num_acao, 
                                	cod_unsa, 
                                	cod_unsa_inclusao,
                                	aceitacao,
                                	num_descritivo,
                                	data_inclusao,
                                	status
                                ) values (
                            		$num_eixo,
                            		$num_objetivo,
		                            $num_diretriz,
		                            $num_objetivoespecifico,
		                            $num_meta,
		                            $num_operacao,
	               					$num_acao,
		                            " . $rs['cod_unsa'] . ",
		                            $codigoUnidadeSaude,
		                            'E',
		                            $num_descritivo,
		                            now(),
		                            '$enviarAgora'
								)";
	                            	
                    	if ( !pg_query($sql) ){
                    		$podeAlterar = false;
                    	}
					}
				}
			}//fim do while
        	
        }
        
        
        //echo "Pode Alterar? <br/>";
        //exit;
        
        if ( $podeAlterar ){
        	
        	//echo $podeAlterar . "<br/>";
        	
	        $resultado = pg_query($sqlAcoes);
	        
	        //echo "Seleciona as ações <br/>";
	        //echo $sqlAcoes . "<br/><br/>";
	        //exit;
	        
	        
	        if ( pg_num_rows($resultado) > 0 ){
	        	
		        // aqui ele já tem o código da descricao da tabela descritivo
		        $num_descritivo = pg_fetch_result($resultado, 0, "num_descritivo");
	
		        /*
		        echo "<pre>";
		        //print_r(pg_fetch_assoc($resultado));
		        echo "<br/>";
		        print_r("Código da Unidade de saúde: " . $codigoUnidadeSaude);
		        echo "<br/>";
		        print_r("Codigo do nível de acesso: " . $_SESSION["fnum_nivel_acesso"]);
		        echo "<br/><br/>";
		        echo "</pre>";
		        */
		        //exit;
		        
		        // Verifica se o código da seção é igual ao código do usuário que incluiu o registro 
		        // ou se o nível de acesso é igual a 1
		        if ( ($codigoUnidadeSaude == pg_fetch_result($resultado, 0, "cod_unsa_inclusao")) || ($_SESSION["fnum_nivel_acesso"] == 1) ) {
		            
		        	
		        	// Consulta o total dos registros da tabela de "ações" onde o número do descritivo seja
		        	// igual ao número obtido na consulta anterior
		        	$sql2 = "select count(*) as total 
		        			 from " . $_SESSION["banco"] . ".acoes
		        			 where 
		        				num_descritivo = " . pg_fetch_result($resultado, 0, "num_descritivo");
		            $resultado2 = pg_query($sql2);
		            $quantidade = pg_fetch_result($resultado2, 0, "total");
		            
		            //echo $sql2 . "<br/>";
		            //echo "Total: " . $quantidade . "<br/>";
		            
		            // Consulta o total dos registros da tabela de "operações" onde o número do descritivo seja
		        	// igual ao número obtido na consulta anterior 
		        	/*
		            $sql2 = "select count(*) as total 
		            		 from " . $_SESSION["banco"] . ".operacoes 
		            		 where 
		            			num_descritivo = " . pg_fetch_result($resultado, 0, "num_descritivo");
		            $resultado2 = pg_query($sql2);
		            $quantidade = $quantidade + pg_fetch_result($resultado2, 0, "total");
		            
		            echo $sql2 . "<br/>";
		            echo "Total: " . pg_fetch_result($resultado2, 0, "total") . "<br/><br/>";
		            
		            echo "Total das quantidades: " . $quantidade . "<br/>";
		            */
		            		            
		            //exit;
		            
		            // Se o total for maior que 0
		            /*
		            if ( $quantidade > 0 ) {
		                // caso exista mais de uma ação com o mesmo descritivo, a alteração no texto do descritivo força a inclusão de um 
		                // novo registro para esta ação lembrando que operação utiliza a mesma tabela para descritivo
		                
		                $sql = "select 
		                			des_descritivo 
		                		from 
		                			" . $_SESSION["banco"] . ".descritivos 
		                		where 
		                			num_descritivo = $num_descritivo";
		                
		                $resultado = pg_query($sql);
		                
		                echo $sql . "<br/>";
		                //exit;
		                
		                if ( trim($des_acao) != trim(decodificar(pg_fetch_result($resultado, 0, "des_descritivo"))) ) {
		                	
		                    // verificando se o descritivo novo é diferente, caso positivo um novo 
		                    // registro de descritivo será utilizado para esta ação
		                    $sql = "insert into " . $_SESSION["banco"] . ".descritivos (
		                    			des_descritivo, 
		                    			cod_unsa_inclusao, 
		                    			num_func_inclusao
		                    		) values (
		                    		'" . decodificar($des_acao) . "', 
		                    		$codigoUnidadeSaude, 
		                    		" . $_SESSION["fnum_func"] . ")";
		                    
		                    echo $sql . "<br/>";
		                    pg_query($sql);
		                    
		                    $sql = "select 
		                    			num_descritivo 
		                    		from 
		                    			" . $_SESSION["banco"] . ".descritivos 
		                    		order by 
		                    			num_descritivo DESC limit 1";
		                    
		                    echo $sql . "<br/>";
		                    exit;
		                    $resultado = pg_query($sql);
		                    $num_descritivo = pg_fetch_result($resultado, 0, "num_descritivo");
		                }
		                
		            } else {
		                $sql = "update " . $_SESSION["banco"] . ".descritivos 
		                		set 
		                			des_descritivo = '" . decodificar($des_acao) . "' 
		                		where 
		                			num_descritivo = $num_descritivo";
		                pg_query($sql);
		            }
					*/
		            
		            $sql = "update " . $_SESSION["banco"] . ".acoes 
		            		set 
		            			num_descritivo = '$num_descritivo', 
		            			motivonaocumprimento = '" . decodificar($motivonaocumprimento) . "', 
		            			peso = '" . $peso . "', 
		            			dt_prev_inic = '" . dataparabanco($dt_prev_inic) . "', 
		            			responsavel = '" . decodificar($responsavel) . "', 
		            			id_usuario_alteracao = " . $_SESSION["fnum_func"] . ", 
		            			data_alteracao = now(),
		            			num_orgao_intersecao = ";
		            
		            if ($num_orgao_intersecao != "") {
		                $sql .= "'$num_orgao_intersecao' ";
		            } else {
		                $sql .= "NULL ";
		            }
		            $sql .= " where num_acao = $num_acao ";
		            
		            //echo $sql . "<br/>";
		            //exit;
		            
		            if (pg_query($sql)) {
		                // ########## inicio alterando operacoes que vem a partir da ação.  
		                $num_tipo_unsa = 32;
		                
		                if ( $codigoUnidadeSaude == 10 ) {
		                    $num_tipo_unsa = 32;
		                } else {
		                    $sql = "select 
		                    			num_tipo_unsa 
		                    		from 
		                    			monitorasus.unidade_saude 
		                    		where 
		                    			cod_unsa = $codigoUnidadeSaude";
		                    $resultado = pg_query($sql);
		                    $num_tipo_unsa = pg_fetch_result($resultado, 0, "num_tipo_unsa");
		                }
		                
		                //echo "Numero tipo unidade de saude: $num_tipo_unsa <br/>";
		              	//exit;
		                
		                if ( $num_tipo_unsa != 14 ) {
		                    if ( $codigoUnidadeSaude == 10 ) {
		                        $num_tipo_unsa = 32;
		                    } else {
		                        if ($num_tipo_unsa == 32) {
		                            $num_tipo_unsa = 14;
		                        }
		                    }
		                    $sql = "select 
		                    			cod_unsa, 
		                    			nom_unsa 
					      			from monitorasus.unidade_saude
					     			where 
					     				num_tipo_unsa = $num_tipo_unsa 
					       			and 
		                    			cod_unsa >= 1000 
		                    		and 
		                    			cod_unsa <= 6000 ";
		                    
		                    
		                    if ($num_tipo_unsa == 14) {
		                        $sql .= " and 
		                        			cod_catg = 2 
						  				  and 
						  				  	nom_unsa <> 'SICRA' 
						  				  and 
		                        			substring(ltrim(rtrim(to_char(cod_unsa,'9999'))) from 1 for 1)='" . substr($_SESSION["fcod_unsa"], 0, 1) . "' ";
		                    }
		                    $sql .= " order by nom_unsa ";
		                    $resultado = pg_query($sql);
		                    
		                    // @autor: Gladstone
		                    while ($rs = pg_fetch_array($resultado)) {
		                    	
		                        if ($rs["cod_unsa"] != "") {
		                        	
		                            // montando variável do checkbox da tela de inclusão
		                            $variavel = "c" . $rs["cod_unsa"];
		                            
		                            // verificando se existe operação, se existir então deleta
		                            $sql = "select
				                            	*
				                            from
				                            	" . $_SESSION["banco"] . ".operacoes
				                            where
				                            	num_acao_central = $num_acao
				                            and
				                            	cod_unsa = " . $rs["cod_unsa"];
		                            
		                            $resSqlOperacao = pg_query($sql);
		                            
		                            if ( pg_num_rows($resSqlOperacao) > 0 ){
		                             
			                            $codigoOperacao = pg_fetch_result($resSqlOperacao, 0, "num_operacao");
			                            //echo "Codigo da operacao: $codigoOperacao <br/>" ;
			                            
			                            $sqlDeleteOperacao = "delete from ". $_SESSION["banco"] .".operacoes
			                            					  where num_operacao = $codigoOperacao";
		                            
	                            		//echo $sqlDeleteOperacao .  "<br/>";
	                            		//exit;
		                            
	                            		//pg_query($sqlDeleteOperacao);
		                            }
		                            
		                            // Verifica se a variavel contém algum valor, se tiver ele entrar para
		                            // fazer a atualização do registro
		                            if ($_POST[$variavel] != "") { // if => POST
		                            	//echo "entrou no if <br/>";
			                            	
		                                	$sqlSelectAcaoDistrito = "select * from " . $_SESSION["banco"] . ".acoes_distrito
		                                								where 
		                                									num_acao = $num_acao
		                                								and
		                                									cod_unsa = " . $rs["cod_unsa"];

		                                	//echo $sqlDeleteAcoesDistrito . "<br/>";
		                                	//exit;
		                                	
		                                	
		                                	$resultSelectAcaoDistrito = pg_query($sqlSelectAcaoDistrito);
				                                	
		                                	if ( pg_num_rows($resultSelectAcaoDistrito) > 0 ){
				                                		
			                                    $sql = "update " . $_SESSION["banco"] . ".acoes_distrito 
			                                    		set 
			                                    			status = '$enviarAgora',
			                                    			num_descritivo = $num_descritivo 
			                                    		where 
			                                    			num_acao = $num_acao 
			                                    		and 
			                                    			cod_unsa = " . $rs["cod_unsa"];
			                                    
			                                    //echo $sql .  "<br/>";
			                                    pg_query($sql);
					                                    
		                                	} else {
				                                	
			                           
			                                    // INSERÇÃO NA TABELA ACOES_DISTRITO - Gladstone Barbosa
			                                    $sql = "insert into " . $_SESSION["banco"] . ".acoes_distrito (
			                                    			num_eixo, 
			                                    			num_objetivo, 
			                                    			num_diretriz, 
			                                    			num_objetivoespecifico, 
			                                    			num_meta, 
			                                    			num_operacao, 
			                                    			num_acao, 
			                                    			cod_unsa, 
			                                    			cod_unsa_inclusao,
			                                    			aceitacao,
			                                    			num_descritivo,
															data_inclusao,
			                                    			status
			                                    		) values (
			                                    			$num_eixo,
			                                    			$num_objetivo,
			                                    			$num_diretriz,
			                                    			$num_objetivoespecifico,
			                                    			$num_meta,
			                                    			$num_operacao,
			                                    			$num_acao,
			                                    			" . $rs["cod_unsa"] . ",
			                                    			$codigoUnidadeSaude,
			                                    			'E',
			                                    			$num_descritivo,
			                                    			now(),
			                                    			'$enviarAgora'
			                                    		)";
					                                    
					                                    
			                                    //echo $sql .  "<br/>";
			                                    //exit;
		                                    
		                                    	pg_query($sql);
		                                	}
		                                
		                            } else { // if => POST
		                            	//echo "entrou no else <br/>";
		                            	
		                                // a unidade foi desmarcada e não deve receber mais a operação.
		                                // verificando se existia operação, caso sim, eliminando a operação.
		                                // se a operação tinha ações, bloqueando operação e bloqueando suas ações.
		                                
                                    	$sqlSelectAcoesDistrito = "select * from " . $_SESSION["banco"] . ".acoes_distrito
                                    								where 
                                    									aceitacao <> 'A'
                                    								and
                                    									num_acao = $num_acao
                                    								and
                                    									cod_unsa = " . $rs["cod_unsa"];
                                    	//echo $sql .  "<br/>";
                                    	$resultSelectAcoesDistrito = pg_query($sqlSelectAcoesDistrito);
                                    	
                                    	if ( pg_num_rows($resultSelectAcoesDistrito) > 0 ){
                                    		
                                    		while ( $resSelect = pg_fetch_array($resultSelectAcoesDistrito) ){
                                    			
		                                        $sqlDeleteAcoesDistrito = "delete from " . $_SESSION["banco"] . ".acoes_distrito 
		                                        			 				where 
		                                    									aceitacao <> 'A'
		                                    								and
		                                    									num_acao = $num_acao
		                                    								and
		                                    									cod_unsa = " . $rs["cod_unsa"];
		                                        //echo $sqlDeleteAcoesDistrito .  "<br/>";
		                                        pg_query($sqlDeleteAcoesDistrito);
		                                        
                                    		}
                                    		
                                    	}
		                                    		
		                            } // Fim do ELSE => POST
		
		                            
		                        }
		                    }
		                }
		                // ########## fim alterando operacoes que vem a partir da ação
		
		                $msg = "Alteração da Atividade realizada com sucesso!";
		            } else {
		                $msg = "Erro ao alterar a Atividade";
		            }
		        } else {
		            $msg = "Alteração Cancelada - Somente Funcionários da Unidade que incluiu este Registro podem alterá-lo";
		        }
		        
	        } // Não possui nenhuma ação
	        
        } else {
        	$msg = "Alteração Cancelada - O Distrito já aceitou e a Atividade não pode ser mais alterada";
        }
        return $msg;
    }

    
    /**
     * Fechar Ação
     * @param int $num_eixo
     * @param int $num_objetivo
     * @param int $num_diretriz
     * @param int $num_objetivoespecifico
     * @param int $num_meta
     * @param int $num_operacao
     * @param int $num_acao
     * @param string $where
     * @return string $msg
     * @access	monitorasus 
     */
    
    function statusacao($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $where, $conexao) {
        $sql = "UPDATE " . $_SESSION["banco"] . ".acoes SET status_acao = '" . $_POST["opcao"] . "' where num_acao = " . $num_acao;
        //alertar($num_acao);
        if (pg_query($sql)){
          $msg = "Status da atividade alterada com sucesso!";
        } else {
          $msg = "";
        }
        return $msg;
    } 
    
    function fecharacao($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $where, $nivelacesso, $conexao) {
        $num_orgao = "";
        $num_unidade = "";
        $sql = "select num_orgao from " . $_SESSION["banco"] . ".objetivos_especificos where num_objetivoespecifico=$num_objetivoespecifico";
        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            $num_orgao = pg_fetch_result($resultado, 0, "num_orgao");
        }
        $sql = "select cod_unsa from " . $_SESSION["banco"] . ".acoes where num_acao = " . $num_acao;
        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            $num_unidade = pg_fetch_result($resultado, 0, "cod_unsa");
        }
        if ((($_SESSION["fnum_orgao"] == $num_orgao)) || ($_SESSION["fnum_nivel_acesso"] == 1) || ($num_unidade != "10")) {
            if ($nivelacesso[7][2] == "S") {
                $sql = "update " . $_SESSION["banco"] . ".acao_prazos set num_tipo_prazo=3, data_prazo=now(), id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_acao = $num_acao and situacao='A' and num_tipo_prazo=2 ";
                if (pg_query($sql)) {
                    $msg = "A Atividade foi concluída com sucesso!";
                } else {
                    $msg = "Erro ao Concluir a Atividade!";
                }
            } else {
                $msg = "Você não tem permissão para executar esta operação!";
            }
        } else {
            $msg = "Somente funcionários do orgão responsável podem concluir esta ação!";
        }
        //Teste para saber se o número do orgão da atividade é o mesmo do usuário logado.
        //return $msg. " ". $num_orgao. " " .$_SESSION["fnum_orgao"];
        return $msg;
    }

    /**
     * Postergar Ação
     * @param int $num_eixo
     * @param int $num_objetivo
     * @param int $num_diretriz
     * @param int $num_objetivoespecifico
     * @param int $num_meta
     * @param int $num_operacao
     * @param int $num_acao
     * @param string $dt_prev_fina
     * @param string $motivopostergacao
     * @param string $where
     * @return string $msg
     * @access	monitorasus
     */
    function postergaracao($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $motivopostergacao, $dt_prev_fina, $where, $nivelacesso, $conexao) {
        $num_orgao = "";
        $sql = "select num_orgao from " . $_SESSION["banco"] . ".objetivos_especificos where num_objetivoespecifico=$num_objetivoespecifico";
        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            $num_orgao = pg_fetch_result($resultado, 0, "num_orgao");
        }
        $sql = "select cod_unsa from " . $_SESSION["banco"] . ".acoes where num_acao = " . $num_acao;
        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            $num_unidade = pg_fetch_result($resultado, 0, "cod_unsa");
        }
        if ((($_SESSION["fnum_orgao"] == $num_orgao)) || ($_SESSION["fnum_nivel_acesso"] == 1) || ($num_unidade != "10")) {
            if ($nivelacesso[7][2] == "S") {
                $sql = "update " . $_SESSION["banco"] . ".acao_prazos set situacao='I', id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_acao = $num_acao and num_tipo_prazo=2";
                pg_query($sql);
                $sql = "insert into " . $_SESSION["banco"] . ".acao_prazos (num_acao, num_tipo_prazo, data_prazo, id_usuario_inclusao, data_inclusao, situacao, motivopostergacao) values ";
                $sql .= "($num_acao, 2, '" . dataparabanco($dt_prev_fina) . "', " . $_SESSION["fnum_func"] . ", now(), 'A', '" . decodificar($motivopostergacao) . "')";
                if (pg_query($sql)) {
                    $msg = "Atividade postergada com sucesso!";
                } else {
                    $msg = "Erro ao postergar a Atividade!";
                }
            } else {
                $msg = "Você não tem permissão para executar esta operação!";
            }
        } else {
            $msg = "Somente funcionários do orgão responsável podem postergar esta Atividade!";
        }
        return $msg;
    }

    /**
     * Postergar Inicio Ação
     * @param int $num_eixo
     * @param int $num_objetivo
     * @param int $num_diretriz
     * @param int $num_objetivoespecifico
     * @param int $num_meta
     * @param int $num_operacao
     * @param int $num_acao
     * @param string $dt_prev_inic
     * @param string $motivopostergacao
     * @param string $where
     * @return string $msg
     * @access	monitorasus
     */
    function postergarinicio($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $motivopostergacao, $dt_prev_inic, $where, $nivelacesso, $conexao) {
        $num_orgao = "";
        $sql = "select num_orgao from " . $_SESSION["banco"] . ".objetivos_especificos where num_objetivoespecifico=$num_objetivoespecifico";
        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            $num_orgao = pg_fetch_result($resultado, 0, "num_orgao");
        }
        $sql = "select cod_unsa from " . $_SESSION["banco"] . ".acoes where num_acao = " . $num_acao;
        $resultado = pg_query($sql);
        if (pg_num_rows($resultado) > 0) {
            $num_unidade = pg_fetch_result($resultado, 0, "cod_unsa");
        }
        if ((($_SESSION["fnum_orgao"] == $num_orgao)) || ($_SESSION["fnum_nivel_acesso"] == 1) || ($num_unidade != "10")) {
            if ($nivelacesso[7][2] == "S") {
                $sql = "update " . $_SESSION["banco"] . ".acao_prazos set situacao='I', id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_acao = $num_acao and num_tipo_prazo = 1";
                pg_query($sql);
                $sql = "insert into " . $_SESSION["banco"] . ".acao_prazos (num_acao, num_tipo_prazo, data_prazo, id_usuario_inclusao, data_inclusao, situacao, motivopostergacao) values ";
                $sql .= "($num_acao, 1, '" . dataparabanco($dt_prev_inic) . "', " . $_SESSION["fnum_func"] . ", now(), 'A', '" . decodificar($motivopostergacao) . "')";
                if (pg_query($sql)) {
                    $sql = "update " . $_SESSION["banco"] . ".acoes set dt_prev_inic = '" . dataparabanco($dt_prev_inic) . "' where $where and num_acao=$num_acao";
                    pg_query($sql);
                    $msg = "Início de Atividade postergado com sucesso!";
                } else {
                    $msg = "Erro ao postergar o Início da Atividade!";
                }
            } else {
                $msg = "Você não tem permissão para executar esta operação!";
            }
        } else {
            $msg = "Somente funcionários do orgão responsável podem postergar o início desta Atividade!";
        }
        return $msg;
    }

    /**
     * adicionafavorito
     * @param int $num_eixo
     * @return string $msg
     * @access	monitorasus
     */
    function adicionafavorito($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_operacao, $num_acao, $conexao) {
        $sql = "select count(*) as total from " . $_SESSION["banco"] . ".favoritos where id_usuario=" . $_SESSION["fnum_func"] . " and caminho = '$num_eixo-$num_objetivo-$num_diretriz-$num_objetivoespecifico-$num_meta-$num_operacao-$num_acao' ";
        $resultado = pg_query($sql);
        if (pg_fetch_result($resultado, 0, "total") <= 0) {
            $sql = "insert into " . $_SESSION["banco"] . ".favoritos (id_usuario, caminho) values (" . $_SESSION["fnum_func"] . ", '$num_eixo-$num_objetivo-$num_diretriz-$num_objetivoespecifico-$num_meta-$num_operacao-$num_acao') ";
            if (pg_query($sql)) {
                $msg = "Favoritos Inserido com Sucesso!";
            } else {
                $msg = "Erro ao Inserir Favoritos";
            }
        } else {
            $msg = "Favoritos Já existente, Inserção cancelada!";
        }
        return $msg;
    }

}

?>